package db

import (
	"gorm.io/gorm"
)

// PageData 数据库分页数据
type PageData struct {
	List  *any  //数据列表
	Total int64 //总数
}

// Page 分页钩子 page:当前页，size:每页数量
func Page(page, size int) func(db *gorm.DB) *gorm.DB {

	return func(db *gorm.DB) *gorm.DB {
		if page == 0 {
			page = 1
		}

		switch {
		case size > 100:
			size = 100
		case size <= 0:
			size = 10
		}

		offset := (page - 1) * size
		return db.Offset(offset).Limit(size)
	}
}
